/*
 * MapObjectNode.h
 */

#ifndef MAPOBJECTNODE_H_
#define MAPOBJECTNODE_H_

#include "Node.h"
#include "MapObject.h"

class MapObjectNode : public Node{
private:
	MapObject* data;
public:
	MapObjectNode();
	virtual ~MapObjectNode();
	/**
	 * Gets node value
	 */
	MapObject* getNodeValue() const;
	/**
	 * Sets node value
	 */
	void setNodeValue(MapObject* value);
	/**
	 * Copy Constructor
	 */
	MapObjectNode(const MapObjectNode &mapObjectNode);
	/**
	 * Operator '='
	 */
	MapObjectNode& operator=(const MapObjectNode &mapObjectNode);
	/**
	 * Virtual clone to implement. Virtual copy constructor.
	 */
	virtual MapObjectNode* clone() const;
	/**
	 * Virtual implementation of equals
	 */
	virtual bool equals(const Node& node) const;
};

#endif /* MAPOBJECTNODE_H_ */
